Skip to content

fix(userlist): stop username input overlapping Log out button (#7593)#7597

Open
JohnMcLear wants to merge 1 commit intoether:developfrom
JohnMcLear:fix-7593-logout-overflow
Open

fix(userlist): stop username input overlapping Log out button (#7593)#7597
JohnMcLear wants to merge 1 commit intoether:developfrom
JohnMcLear:fix-7593-logout-overflow

Conversation

@JohnMcLear
Copy link
Copy Markdown
Member

Summary

Fixes #7593.

In the pad's Users popup, `#myusernameform` had no width set and the `<input id="myusernameedit">` inside it rendered at its natural content width, pushing past the adjacent Log out button. At common viewport widths the button ended up overlapped or clipped off-screen.

Fix

CSS-only:

  • Constrain `#myusernameform` to `width: 75px`.
  • Make `#myusernameedit` `width: 100%; box-sizing: border-box;` so the text field stays inside the form (border + padding included in the 75px).

Result: the Log out button sits visibly next to the username input as intended.

Test plan

  • Visual verification in a pad: Log out button no longer overlaps / no longer clips off-screen.
  • No JS or behaviour change — pure layout.

@qodo-free-for-open-source-projects
Copy link
Copy Markdown

Review Summary by Qodo

Fix username input overlapping Log out button in Users popup

🐞 Bug fix

Grey Divider

Walkthroughs

Description
• Constrain username input form to fixed width preventing overflow
• Make input fill container with border-box sizing
• Prevent Log out button overlap in Users popup
Diagram
flowchart LR
  A["#myusernameform<br/>no width constraint"] -->|Add width: 75px| B["#myusernameform<br/>fixed 75px width"]
  C["#myusernameedit<br/>natural content width"] -->|Add width: 100%<br/>box-sizing: border-box| D["#myusernameedit<br/>fills container"]
  B --> E["Log out button<br/>visible and not overlapped"]
  D --> E
Loading

Grey Divider

File Changes

1. src/static/css/pad/popup_users.css 🐞 Bug fix +9/-0

Constrain username input to prevent button overlap

• Added width: 75px constraint to #myusernameform to prevent overflow
• Added width: 100% and box-sizing: border-box to input#myusernameedit to keep input within
 container bounds
• Added explanatory comments documenting the fix for issue #7593

src/static/css/pad/popup_users.css


Grey Divider

Qodo Logo

@qodo-free-for-open-source-projects
Copy link
Copy Markdown

qodo-free-for-open-source-projects Bot commented Apr 23, 2026

Code Review by Qodo

🐞 Bugs (1) 📘 Rule violations (1) 📎 Requirement gaps (0)

Grey Divider


Action required

1. No regression test for #7593 📘 Rule violation ☼ Reliability
Description
This PR is a bug fix (Fixes #7593) but it adds no automated regression test that would fail if the
CSS fix is reverted. Without a test, the Log out button overlap/clipping issue can easily regress
unnoticed.
Code

src/static/css/pad/popup_users.css[R61-64]

+  /* Constrain the username input so the adjacent Log out button does not
+     get pushed off the Users popup — previously the input expanded to its
+     natural default width and overlapped the button. Fixes #7593. */
+  width: 75px;
Evidence
PR Compliance ID 2 requires each bug fix to include an automated regression test. The changed code
explicitly indicates a bug fix (Fixes #7593) but the PR diff only shows CSS changes and no
accompanying test addition or modification.

src/static/css/pad/popup_users.css[61-64]
Best Practice: Repository guidelines

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The PR fixes a UI regression (username input overlapping the Log out button) but does not add an automated regression test to prevent the bug from reappearing.

## Issue Context
The CSS change is marked as a bug fix (`Fixes #7593`). Per compliance, a regression test should fail if the fix is reverted and pass with the fix.

## Fix Focus Areas
- src/static/css/pad/popup_users.css[61-77]
- src/tests/frontend/specs/helper.js[1-120]
- src/tests/frontend/specs/[add new spec file to cover Users popup layout][1-200]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Skin min-width defeats fix 🐞 Bug ≡ Correctness
Description
In the default Colibris skin, input#myusernameedit has min-width: 110px, so it can still overflow
the newly constrained 75px #myusernameform container, undermining the intent to prevent overlap with
adjacent controls (e.g., Log out). This can cause the same layout overflow in the default Etherpad
skin configuration.
Code

src/static/css/pad/popup_users.css[R61-65]

+  /* Constrain the username input so the adjacent Log out button does not
+     get pushed off the Users popup — previously the input expanded to its
+     natural default width and overlapped the button. Fixes #7593. */
+  width: 75px;
}
Evidence
The PR constrains #myusernameform to 75px and sets the input to width:100% with border-box sizing,
but the Colibris skin still applies min-width:110px to the same input, which will force it wider
than the 75px container. Etherpad loads the base pad.css and then the skin’s pad.css, and Etherpad
defaults skinName to 'colibris', so this conflict applies to the default UI.

src/static/css/pad/popup_users.css[59-78]
src/static/skins/colibris/src/components/users.css[28-40]
src/static/js/ace.ts[182-189]
src/node/utils/Settings.ts[966-970]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
The base CSS now constrains `#myusernameform` to `75px`, but the default Colibris skin sets `input#myusernameedit { min-width: 110px; }`, which can force the input wider than its container and reintroduce overflow/overlap.

### Issue Context
Etherpad loads `../static/css/pad.css` and then `../static/skins/${skinName}/pad.css`, and `skinName` defaults to `colibris`. The Colibris users component CSS currently enforces a minimum input width.

### Fix Focus Areas
- src/static/skins/colibris/src/components/users.css[28-40]

### Suggested fix
In Colibris `users.css`, adjust the username input rule to allow shrinking within the constrained container (e.g., remove/reduce `min-width`, or set `min-width: 0; max-width: 100%; box-sizing: border-box;`), aligning it with the intent of the base fix.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Qodo Logo

Comment on lines +61 to +64
/* Constrain the username input so the adjacent Log out button does not
get pushed off the Users popup — previously the input expanded to its
natural default width and overlapped the button. Fixes #7593. */
width: 75px;
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

1. No regression test for #7593 📘 Rule violation ☼ Reliability

This PR is a bug fix (Fixes #7593) but it adds no automated regression test that would fail if the
CSS fix is reverted. Without a test, the Log out button overlap/clipping issue can easily regress
unnoticed.
Agent Prompt
## Issue description
The PR fixes a UI regression (username input overlapping the Log out button) but does not add an automated regression test to prevent the bug from reappearing.

## Issue Context
The CSS change is marked as a bug fix (`Fixes #7593`). Per compliance, a regression test should fail if the fix is reverted and pass with the fix.

## Fix Focus Areas
- src/static/css/pad/popup_users.css[61-77]
- src/tests/frontend/specs/helper.js[1-120]
- src/tests/frontend/specs/[add new spec file to cover Users popup layout][1-200]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment on lines +61 to 65
/* Constrain the username input so the adjacent Log out button does not
get pushed off the Users popup — previously the input expanded to its
natural default width and overlapped the button. Fixes #7593. */
width: 75px;
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

2. Skin min-width defeats fix 🐞 Bug ≡ Correctness

In the default Colibris skin, input#myusernameedit has min-width: 110px, so it can still overflow
the newly constrained 75px #myusernameform container, undermining the intent to prevent overlap with
adjacent controls (e.g., Log out). This can cause the same layout overflow in the default Etherpad
skin configuration.
Agent Prompt
### Issue description
The base CSS now constrains `#myusernameform` to `75px`, but the default Colibris skin sets `input#myusernameedit { min-width: 110px; }`, which can force the input wider than its container and reintroduce overflow/overlap.

### Issue Context
Etherpad loads `../static/css/pad.css` and then `../static/skins/${skinName}/pad.css`, and `skinName` defaults to `colibris`. The Colibris users component CSS currently enforces a minimum input width.

### Fix Focus Areas
- src/static/skins/colibris/src/components/users.css[28-40]

### Suggested fix
In Colibris `users.css`, adjust the username input rule to allow shrinking within the constrained container (e.g., remove/reduce `min-width`, or set `min-width: 0; max-width: 100%; box-sizing: border-box;`), aligning it with the intent of the base fix.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Fixes ether#7593. In the pad's Users popup, #myusernameform had no width
set and the <input id="myusernameedit"> inside it took its natural
content width, pushing past the Log out button and making the button
overflow the popup at common widths.

Constrain #myusernameform to 75px and make the input fill its
container with box-sizing: border-box so the text field stays inside
the form and the Log out button sits visibly next to it rather than
getting covered or clipped off-screen.

Low-risk, CSS-only change. No test plan beyond visual verification
because the affected control is in the users popup UI.
@JohnMcLear JohnMcLear force-pushed the fix-7593-logout-overflow branch from d76c6c7 to a55436c Compare April 24, 2026 18:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

User Log out button overflows off-screen

1 participant